About Bootman™ 1.1

                              Bootman is Free!
             Copyright ©1990 Bill Steinberg
                    All Rights Reserved.

      This copy of Bootman is courtesy of APS
              Alliance Peripheral Systems
              2900 S. 291 Hwy • Lower H
              Independence, MO      64057
                     (800) 233-7550
                     (816) 478-8300

To view this help text in a more convenient environment, use the Edit menu’s Copy (or Cut) command, or their keyboard equivalents, to copy this text to the clipboard. Once in the clipboard, this text can be pasted into your favorite word processor, and viewed or printed from there.

Overview
Bootman is designed to display and edit the values of three different Macintosh System parameters:

                            System Heap Size,
                 Maximum Number of Open Files, and
                Maximum Number of O/S Events.

The values for these parameters are stored in an area called Boot Blocks on every startup disk. Values stored in the boot blocks area of a disk are not normally editable; hence both the name and the need for Bootman. These three parameters, and their current values, are shown just below this text, and can be edited.

The area at the top of Bootman’s window (just above this text) is called the Current System Heap Display. To aid you in determining the proper value for the System Heap Size field, Bootman displays the status of your current System Heap, including the Total amount of System Heap memory, what part of that memory is currently In Use, and what part is available (Free). Bootman also provides a Purge button in the bottom left corner of the Bootman window which will purge the System Heap of all blocks that are marked as purgable (so you can see how much space can NOT be reclaimed by the System, even if it needs it for something else). Just below the gauge is a line of text, “For 20% Free, set System Heap to XXXK”. This is a first guess suggestion as to what value to try in the System Heap Size field. The value is calculated by looking at the current amount of In Use space in your System Heap, and multiplying it by 125%. In other words, if your System Heap was set to the suggested number, there would currently be 20% Free space in your System Heap. Determining the correct value for your System Heap is a complicated subject, beyond the scope of this help file, particularly when one is running MultiFinder. Many “experts” in this area feel that 125% of current usage is a good starting value, so Bootman displays that value for you. If you have no idea what value to set, or why you are running Bootman, turn to your source of Bootman, and ask for advice. If you have access to a commercial BBS (such as CompuServe), you can drop me a note directly, and maybe I can help. My electronic addresses are listed at the end of this text; I greatly prefer CompuServe for all my electronic mail, so please try to contact me there.

Bootman is a modeless, MultiFinder aware application. When Bootman is the current application, the cursor will turn into a hand whenever it’s over the Current System Heap Display portion of the window (at the top of the Bootman window). Whenever the Bootman cursor is a hand, you can drag the window around by mousing down and dragging. Whenever Bootman is NOT the current application (i.e., when it’s in the background under MultiFinder), it will shrink down to just large enough to display the Current System Heap Display portion of the window. The Current System Heap Display is updated every two seconds, whether or not Bootman is the current application. Bootman normally Auto Positions its window. If you have a favorite place you’d like Bootman’s window to show up, move the window to that spot, and select Save Window Position from the File menu. If you change your mind, just  select Auto Position Window from the File menu. Any time you move Bootman’s window, selecting Save Window Position will do just that.

When do Bootman changes take effect?
If you don’t click the OK button, no changes are made to anything. When you click the OK button, Bootman updates the values of all three parameters in the Boot Blocks on the volume with the active System on it. It doesn’t matter what volume Bootman itself is on. If you want to change the values on another volume, you’ll have to restart your Mac with that volume. All changes you make with Bootman do NOT take effect until you restart your Mac.

Defaults and Safeguards
Apple default System Heap Size = 128K
Apple default Maximum Number of Open Files = 40
Apple default Maximum Number of O/S Events = 20

If you set any of these fields to less than their Apple default, Bootman will display a warning alert when you try to save the information back to disk. You’ll also get the warning alert if you try to set any field to a value that’s too large. Too large, in the case of System Heap Size, is requesting more than 150% of the memory currently In Use. Too large, in the case of  Maximum Number of Open Files, is more than 348, which is the limit the Macintosh Operating System will allow. In the case of Maximum Number of O/S Events, the limit is somewhat arbitrary. The value I have chosen is 100. As the alert will mention, if you hold down the option key, you can override Bootman’s built in warning, and the values you specified will be written out to disk, no matter what they are. You can also hold down the option key when disposing the warning alert; instead of returning you to the main dialog, Bootman will write out the new values and exit.

What’s a System Heap?
Every time you startup your Macintosh, a certain part of your memory is set aside for data and code that is used to keep your Macintosh running, and to store resources that all programs you run can share. This area is called the System Heap. When you run a program (or many programs, if you’re running MultiFinder), a different area of memory is used, called the Application Heap. If you’re not running MultiFinder, your System Heap Size will not change from the value stored in Boot Blocks, plus any space added by INITs requesting additional System Heap space. Once you finish the start up process, the size of the System Heap is fixed. If you’re running MultiFinder, the amount of memory allocated to your System Heap can change dynamically; one of MultiFinder’s features is the ability to maintain a properly sized System Heap. Even if you run MultiFinder, it’s a good idea to have the Boot Blocks value for System Heap Size set properly. MutiFinder can only change the size of the System Heap when you launch a new application, and even then, sometimes MultiFinder can’t, particularly if you have many applications running at the time.

If you don’t have enough memory allocated to the System Heap, your Macintosh can slow down or even crash. Many actions can eat up space in your System Heap; INITs are notorious for taking up space in your System Heap (though properly designed INITs can also request that the System Heap be expanded to allow for the additional memory requirements they make). The memory used by INITs is almost always NOT recoverable. If you start running into lots of System Errors, particularly -108 errors (out of memory), run Bootman and see if there’s a reasonable amount of Free Space in the System Heap. If not, try increasing the size of the System Heap a bit, and restart your Macintosh, and see if that helps. Note that there are many OTHER things (besides running out of Free Space in your System Heap) that can cause System Errors, even -108 errors (an application can run out of memory too).

You can’t really hurt anything if you make your System Heap Size too large, though any memory you assign to the System Heap can’t be used by applications. If you add 500K more memory to the System Heap, and the System never needs to use that extra 500K, you have wasted 500K that your applications can’t use. If the Current System Heap Display shows very little Free space remaining, you might want to click in the Purge button to see how much space the System can free up in the System Heap. You might have a large FONT resource loaded that normally isn’t needed, and the Purge will remove it and give you an idea of the absolute maximum amount of Free Space that can be made available without increasing the size of the System Heap. Be aware, however, that having some free space is important. If your System Heap is just large enough to hold the required bits of code and data, and not large enough to hold more than one or two more temporary blocks, your Macintosh will slow down considerably, because it has to load and purge items on a regular basis, since there is barely enough room in the System Heap. You can get a rough idea of how much the System is thrashing to maintain the items in your System Heap by leaving Bootman running in the background (under MultiFinder), and watching how frequently the status of the System Heap changes.

Maximum Open Files and O/S Events?
At the same time the System Heap Size is being set (during the startup process), two particular tables are being created in the System Heap. The number of entries these two tables can each hold is determined by the values stored in two fields in the Boot Blocks of the startup volume. Neither of these tables can be dynamically changed, even if you’re running MultiFinder; once they’ve been created with a particular number of entries, they stay that way. (System 7 may be able to dynamically expand the FCB table).

The first table holds information (in File Control Blocks) on every file that the Macintosh Operating System (O/S) opens. If you (or one of the programs you’re running) want to open another file, and there are no empty File Control Blocks, you’ll get a System Error # -42 (too many open files), and the file won’t be opened. A File Control Block is put into use when a file is first opened, and doesn’t become empty until its file is closed. Note that there are a number of files that the Macintosh keeps open that you may not know about, and many applications create a number of temporary files while they are running. A running application counts as an open file too, not just the documents that an application keeps open. If you use Suitcase II to keep a number of fonts and desk accessories available, each loaded suitcase file is an open file.

When the System creates the FCBTable, it takes the number found in the Boot Blocks field, multiplies it by 4, and creates an FCBTable that can hold that number of entries. If the Boot Blocks field is set to 10, the table will have room for up to 40 open files before running out of room. Because the table is created by multiplying the Boot Blocks value by 4, if you want more files, they come in groups of 4. Bootman makes the necessary conversion between the number stored in Boot Blocks and the number of files, always displaying the Maximum Number of Open Files in terms of number of files, not the number in Boot Blocks. Bootman rounds up; if you enter 50 in the Maximum Number of Open Files field, Bootman will set the actual Boot Blocks field to 13, which will allow you a maximum of 52 open files. If you open Bootman again, you’ll see the number in the Maximum Number of Open Files field is 52, not 50. It’s pretty easy to know when to increase the Maximum Number of Open Files; if you start getting -42 errors, try increasing the value by 20 files (and don’t forget that you have to restart before the FCBTable will be rebuilt, and the new value will take effect).

The second table holds information (in Event Records) on every event that the Macintosh O/S handles. If you are typing away, and the application you’re running isn’t processing the characters as fast as you’re typing, and the Event Queue fills up, some of your characters will be lost before the application can see them.  Event Records stay in the Event Queue until an application removes them, or flushes the Event Queue. This parameter rarely needs changing. If you print in the background (using MultiFinder’s Background Printing facility, or with some other print spooler), you may find characters can be lost while you’re typing ahead in a word processor at the same time you’re printing something else. Or you may find that your hourly chime sound causes some typed characters to be missed when it goes off. In any case, you can try increasing the Maximum Number of O/S Events, which will allow the System to store more events before starting to drop older ones. Try doubling the number from 20 to 40.

Virus Protection Programs
Bootman, when it actually writes out new information to disk, bypasses the normal Mac file system. This is perfectly normal (for Bootman), and is necessary due to the location on disk of this information. Some virus protection programs can tell that Bootman is not doing anything harmful, but other virus protection programs may present you with an Alert, warning you that Bootman is bypassing the normal Mac file system. Some virus protection programs don’t even present a warning Alert, but still refuse to allow Bootman to write out the information. If the information can’t be written out, no matter what the reason, Bootman will issue a warning alert of its own, telling you the information wasn’t written. If you don’t get a warning alert from Bootman, the information was written out properly. If your virus protection program is preventing Bootman from writing out its information, you’ll have to configure your virus program to allow Bootman to work, or temporarily remove the virus protection program.

Bootman is FREE. You may NOT sell Bootman, or include Bootman with anything else you sell, without my permission. You may GIVE Bootman away, just don’t remove this text, or my Copyright notices.  Bulletin Board Systems, including commercial ones such as CompuServe, and Non-Profit user’s groups, such as BMUG, may distribute Bootman.

CHANGES LOG:
1.0 - First Public Release
1.1 - Added saving of window position, changed an error in the help text about the structure of FCBs (thanks Steve).

Bill Steinberg   •   Monday, December 17, 1990

CompuServe •  76703,1027
AppleLink         •   X0542
Delphi              •   BillS
MacNet            •   BillS
GEnie               •   BillS
AOL                 •   BillS NYC